Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Model View Presenter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Model_View_Presenter"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Model_View_Presenter rootpage-Model_View_Presenter skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Model View Presenter</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p><span lang="en"><b>Model View Presenter</b></span> (Abkürzung <b>MVP</b>; wörtlich etwa ‚Modell-Ansicht-Präsentierer‘) ist ein <a href="Entwurfsmuster" title="Entwurfsmuster">Entwurfsmuster</a> in der <a href="Softwareentwicklung" class="mw-redirect" title="Softwareentwicklung">Softwareentwicklung</a>, das aus dem <span lang="en"><a href="Model_View_Controller" title="Model View Controller">Model View Controller</a></span> (MVC) hervorgegangen ist. Es beschreibt einen neuartigen Ansatz, um das Modell (engl. <span lang="en"><i>model</i></span>) und die Ansicht (engl. <span lang="en"><i>view</i></span>) komplett voneinander zu trennen und über einen Präsentierer (engl. <span lang="en"><i>presenter</i></span>) zu verbinden. Dabei steht neben einer deutlich verbesserten <a href="Testbarkeit" title="Testbarkeit">Testbarkeit</a> auch die strengere Trennung der einzelnen Komponenten im Gegensatz zu&nbsp;MVC im Vordergrund.
</p><p>Erstmals eingesetzt und genannt wurde dieses Entwurfsmuster in den 1990er-Jahren von <a href="IBM" title="IBM">IBM</a> und <a href="Taligent" title="Taligent">Taligent</a>. <a href="Martin_Fowler" title="Martin Fowler">Martin Fowler</a> formulierte jedoch im Jahre 2004 <span lang="en"><i>model-view-presenter</i></span> nach seinem Verständnis. Seine Definition ist heute ausschlaggebend.
</p>

<div class="mw-heading mw-heading2"><h2 id="Definition">Definition</h2></div>
<p>MVP basiert wie MVC auch auf drei Komponenten: Dem Modell (<span lang="en"><i>model</i></span>), der Ansicht (<span lang="en"><i>view</i></span>) und dem Präsentierer (<span lang="en"><i>presenter</i></span>).
</p>
<dl><dt>Model</dt>
<dd>Das <i>Modell</i> stellt die Logik der <i>Ansicht</i> dar. Dies kann auch die <a href="Gesch%C3%A4ftslogik" title="Geschäftslogik">Geschäftslogik</a> sein. Über das <i>Modell</i> muss jedoch alle Funktionalität erreichbar sein, um die <i>Ansicht</i> betreiben zu können. Die Steuerung des <i>Modells</i> erfolgt allein vom <i>Präsentierer</i>. Das <i>Modell</i> selbst kennt weder die <i>Ansicht</i> noch den <i>Präsentierer</i>.</dd>
<dt>View</dt>
<dd>Die <i>Ansicht</i> enthält keinerlei steuernde Logik und ist nur allein für die Darstellung und die Ein- und Ausgaben zuständig. Sie erhält weder Zugriff auf die Funktionalität des <i>Präsentierers</i> noch auf das <i>Modell</i>. Sämtliche Steuerung der <i>Ansicht</i> erfolgt durch den <i>Präsentierer</i>.</dd>
<dt>Presenter</dt>
<dd>Der <i>Präsentierer</i> ist das Bindeglied zwischen <i>Modell</i> und <i>Ansicht</i>. Er steuert die logischen Abläufe zwischen den beiden anderen Schichten und sorgt dafür, dass die <i>Ansicht</i> ihre Funktionalität erfüllen kann.</dd></dl>
<p>Damit MVP seine eigentlichen Vorteile gegenüber&nbsp;MVC entfalten kann, werden für <i>Modell</i> und <i>Ansicht</i> jeweils <a href="Schnittstelle" title="Schnittstelle">Schnittstellen</a> (engl. <span lang="en"><i>Interfaces</i></span>) verwendet. Sie definieren den genauen Aufbau beider Schichten, und der <i>Präsentierer</i> verknüpft lediglich die Schnittstellen miteinander. Dies gewährleistet die vollständige Austausch- und Wiederverwertbarkeit des <i>Modells</i> und der <i>Ansicht</i>. Resultierend aus der Austauschbarkeit der <i>Ansicht</i> lässt sich so vor allem ein <span lang="fr"><i>double</i></span> (<a href="Franz%C3%B6sische_Sprache" title="Französische Sprache">französisch</a> für <i>Doppelgänger</i>) für die <i>Ansicht</i> verwenden, um die Funktionalität aus Perspektive der Oberfläche mit <a href="Modultest" title="Modultest">Modultests</a> (engl. <span lang="en"><i>unit tests</i></span>) zu prüfen.
</p><p>Im Jahre 2006 entschied sich Martin Fowler, aufgrund von Erkenntnissen bei der praktischen Anwendung von MVP, das ursprüngliche Entwurfsmuster in zwei differenzierte Muster aufzuteilen<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>: <span lang="en"><i>Supervising Controller</i></span> und <span lang="en"><i>Passive View</i></span>. Beide Muster unterscheiden sich hinsichtlich ihrer Testbarkeit und ihrer Handhabung.
</p>
<div class="mw-heading mw-heading3"><h3 id="Supervising_Controller"><span lang="en">Supervising Controller</span></h3></div>
<p><span lang="en"><i>Supervising Controller</i></span> (wörtlich etwa „Überwachende Steuerung“) ist ein Entwurfsmuster, das aus der ursprünglichen Variante von MVP hervorgegangen ist und von Martin Fowler definiert wurde. Hierbei übernimmt die <i>Ansicht</i> möglichst alle Aufgaben zur Datensynchronisation, während sich der <i>Präsentierer</i> um alle anderen Abläufe zwischen <i>Modell</i> und <i>Ansicht</i> kümmert. Um die Synchronisation möglichst zu vereinfachen, kann auf Datenbindungen (engl. <span lang="en"><i>data bindings</i></span>) zurückgegriffen werden. Dabei stellt der <i>Präsentierer</i> Daten über Klassen bereit, die der <i>Ansicht</i> und dem <i>Modell</i> bekannt sind. Der <i>Präsentierer</i> selbst sorgt nur noch für die Übertragung der Datenobjekte vom <i>Modell</i> zur <i>Ansicht</i>. Hierdurch entfällt weiterer Synchronisationsaufwand vom <i>Präsentierer</i>, da sich die <i>Ansicht</i> selbständig über die Datenobjekte synchronisiert. Das <i>Modell</i> kann seinerseits ebenfalls über die Datenobjekte auf innerhalb der <i>Ansicht</i> veränderte Daten zugreifen.
</p>
<div class="mw-heading mw-heading3"><h3 id="Passive_View"><span lang="en">Passive View</span></h3></div>
<p><span lang="en"><i>Passive View</i></span> (wörtlich etwa „Untätige Ansicht“) ist ein Entwurfsmuster, das aus der ursprünglichen Variante von MVP hervorgegangen ist und von Martin Fowler definiert wurde. Im Gegensatz zum <span lang="en"><i>Supervising Controller</i></span> existiert keine Verbindung über ein Datenobjekt zwischen <i>Modell</i> und <i>Ansicht</i>. Dies trägt dazu bei, dass der <i>Präsentierer</i> jegliche Datensynchronisation zwischen <i>Modell</i> und <i>Ansicht</i> selbst durchführen muss. Das Ergebnis dabei ist, dass die <i>Ansicht</i> nur einfachste Logik zur Anzeige beinhaltet und keine Logik zur Synchronisation von Daten. Dadurch wird der Quelltext der <i>Ansicht</i> äußerst vereinfacht, anders als dies beim <span lang="en"><i>Supervising Controller</i></span> der Fall ist.
</p>
<div class="mw-heading mw-heading3"><h3 id="Unterschiede">Unterschiede</h3></div>
<p>In der <span lang="en"><i>Passive View</i></span> verbessert sich die Testbarkeit gegenüber dem <span lang="en"><i>Supervising Controller</i></span>, da nur noch einfachster Quellcode zur Ein- und Ausgabe in der <i>Ansicht</i> vorhanden ist. Wird die <i>Ansicht</i> bei Tests durch ein <a href="Mock-Objekt" title="Mock-Objekt">Mock-Objekt</a> ersetzt, wird so auch der Quelltext zur Synchronisation im <i>Präsentierer</i> geprüft. Es verbleibt in diesem Fall keine nennenswerte Logik mehr in der <i>Ansicht</i>. Dies verbessert also die Testbarkeit des <i>Präsentierer</i> und des <i>Modells</i> entscheidend.
</p><p>Im Gegensatz dazu bietet der <span lang="en"><i>Supervising Controller</i></span> den Vorteil einer vereinfachten Handhabung. Durch die Datensynchronisation über Datenbindungen zwischen <i>Modell</i> und <i>Ansicht</i> wird der Synchronisationsaufwand wesentlich verringert, welches insgesamt weniger Quelltext erforderlich macht, als es bei der <span lang="en"><i>Passive View</i></span> der Fall ist.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.wildcrest.com/Potel/Portfolio/mvp.pdf">Model-View-Presenter Definition von Taligent</a> (englisch, PDF, 154&nbsp;KiB)</li>
<li><a rel="nofollow" class="external text" href="http://www.martinfowler.com/eaaDev/uiArchs.html#Model-view-presentermvp">Herkunft und Funktionsweise von Model-View-Presenter</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.martinfowler.com/eaaDev/SupervisingPresenter.html">Supervising Controller</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.martinfowler.com/eaaDev/PassiveScreen.html">Passive View</a> (englisch)</li>
<li><span class="cite">Garry Pilkington: <a rel="nofollow" class="external text" href="http://blog.asteropesystems.com/using-mvp-with-asp-net-web-forms/"><i>Using MVP with ASP.NET Web Forms.</i></a> In: <i>Don't Believe The Type.</i> 4.&nbsp;Juni 2013,<span class="Abrufdatum"> abgerufen am 14.&nbsp;August 2013</span> (englisch, Implementierung von MVP mit <a href="ASP.NET#ASP.NET_Web_Forms" title="ASP.NET">ASP.NET WebForms</a>).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AModel+View+Presenter&amp;rft.title=Using+MVP+with+ASP.NET+Web+Forms&amp;rft.description=Using+MVP+with+ASP.NET+Web+Forms&amp;rft.identifier=http%3A%2F%2Fblog.asteropesystems.com%2Fusing-mvp-with-asp-net-web-forms%2F&amp;rft.creator=Garry+Pilkington&amp;rft.date=2013-06-04&amp;rft.language=en">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.martinfowler.com/eaaDev/ModelViewPresenter.html"><span lang="en">Retirement note for Model View Presenter Pattern</span></a> (englisch)</span>
</li>
</ol>
<style data-mw-deduplicate="TemplateStyles:r261921266">
/* start https://de.wikipedia.org/ */


.mw-parser-output table.erw-nav-zebra>tbody>:nth-child(odd){background-color:var(--dewiki-hintergrundfarbe-basis)}.mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste{background-color:#f5f5f5}.mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe{background-color:#e5ecf2}.mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,.mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#ececec}.mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt>.wikitable>*>tr{border-top:2px solid #fdfdfd!important;border-bottom:2px solid #fdfdfd!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#202122}html.skin-theme-clientpref-night .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable tr,html.skin-theme-clientpref-night .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable td{border-color:#101418!important}html.skin-theme-clientpref-night .mw-parser-output .erw-nav-bild span[typeof="mw:File"] img{background-color:#c8ccd1}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#202122}html.skin-theme-clientpref-os .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable tr,html.skin-theme-clientpref-os .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable td{border-color:#101418!important}html.skin-theme-clientpref-os .mw-parser-output .erw-nav-bild span[typeof="mw:File"] img{background-color:#c8ccd1}}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable{border-top:0px!important;border-bottom:0px!important;margin-top:0!important;margin-bottom:0!important}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable tr:first-of-type td{border-top:0px!important}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable tr:last-of-type td{border-bottom:0px!important}


/* end https://de.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r260755238">
/* start https://de.wikipedia.org/ */


.mw-parser-output div.klappleiste{border:1px solid var(--dewiki-rahmenfarbe1);clear:both;font-size:95%;box-sizing:border-box;margin-top:1.5em;padding:2px}.mw-parser-output div.klappleiste:after{clear:both;content:"";display:block}.mw-parser-output div.klappleiste-bild{float:left;padding:2px}.mw-parser-output div.klappleiste-kopf{background:var(--dewiki-hintergrundfarbe5);color:var(--color-base,#202122);text-align:center;font-weight:bold}.mw-parser-output div.klappleiste.mw-collapsed .klappleiste-bild{display:none}.mw-parser-output div.klappleiste+div.klappleiste,.mw-parser-output div.klappleiste+link+div.klappleiste,.mw-parser-output div.klappleiste+link+link+div.klappleiste,.mw-parser-output div.klappleiste+link+style+div.klappleiste,.mw-parser-output div.klappleiste+style+div.klappleiste,.mw-parser-output div.klappleiste+style+style+div.klappleiste,.mw-parser-output div.klappleiste+style+link+div.klappleiste{margin-top:-1px}@media screen{html.skin-theme-clientpref-night .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}


/* end https://de.wikipedia.org/ */
</style>
<div class="klappleiste mw-collapsible navileiste erweiterte-navigationsleiste navigation-not-searchable center erw-nav-farbschema-blau" role="navigation">
<div class="klappleiste-kopf"><a href="Entwurfsmuster" title="Entwurfsmuster">Entwurfsmuster</a><div class="erweiterte-navigationsleiste-quicklinks" style="float:left; font-weight:normal; font-size:75%; margin-left:1em; margin-right:2em; display:none;"><span title="Vorlage anzeigen">V</span> – <span title="Diskussion anzeigen">D</span></div></div>
<div class="klappleiste-inhalt mw-collapsible-content" style="clear:left">
<table class="wikitable erw-nav-zebra" style="width:100%;margin:0;text-align:left;font-size:95%;margin-top:.1em;margin-bottom:.1em;">


<tbody><tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Erzeugungsmuster" title="Erzeugungsmuster">Erzeugungsmuster</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Abstrakte_Fabrik" title="Abstrakte Fabrik">Abstrakte Fabrik</a>&nbsp;| <a href="Erbauer_(Entwurfsmuster)" title="Erbauer (Entwurfsmuster)">Erbauer</a>&nbsp;| <a href="Fabrikmethode" title="Fabrikmethode">Fabrikmethode</a>&nbsp;| <a href="Prototyp_(Entwurfsmuster)" title="Prototyp (Entwurfsmuster)">Prototyp</a>&nbsp;| <a href="Singleton_(Entwurfsmuster)" title="Singleton (Entwurfsmuster)">Singleton</a>&nbsp;| <a href="Multiton" title="Multiton">Multiton</a>&nbsp;| <a href="Objektpool" title="Objektpool">Objektpool</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Strukturmuster" title="Strukturmuster">Strukturmuster</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Adapter_(Entwurfsmuster)" title="Adapter (Entwurfsmuster)">Adapter</a>&nbsp;| <a href="Br%C3%BCcke_(Entwurfsmuster)" title="Brücke (Entwurfsmuster)">Brücke</a>&nbsp;| <a href="Decorator" title="Decorator">Decorator</a>&nbsp;| <a href="Fassade_(Entwurfsmuster)" title="Fassade (Entwurfsmuster)">Fassade</a>&nbsp;| <a href="Fliegengewicht_(Entwurfsmuster)" title="Fliegengewicht (Entwurfsmuster)">Fliegengewicht</a>&nbsp;| <a href="Kompositum_(Entwurfsmuster)" title="Kompositum (Entwurfsmuster)">Kompositum</a>&nbsp;| <a href="Stellvertreter_(Entwurfsmuster)" title="Stellvertreter (Entwurfsmuster)">Stellvertreter</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Verhaltensmuster_(Software)" title="Verhaltensmuster (Software)">Verhaltensmuster</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Beobachter_(Entwurfsmuster)" title="Beobachter (Entwurfsmuster)">Beobachter</a>&nbsp;| <a href="Besucher_(Entwurfsmuster)" title="Besucher (Entwurfsmuster)">Besucher</a>&nbsp;| <a href="Interpreter_(Entwurfsmuster)" title="Interpreter (Entwurfsmuster)">Interpreter</a>&nbsp;| <a href="Iterator_(Entwurfsmuster)" title="Iterator (Entwurfsmuster)">Iterator</a>&nbsp;| <a href="Kommando_(Entwurfsmuster)" title="Kommando (Entwurfsmuster)">Kommando</a>&nbsp;| <a href="Memento_(Entwurfsmuster)" title="Memento (Entwurfsmuster)">Memento</a>&nbsp;| <a href="Schablonenmethode" title="Schablonenmethode">Schablonenmethode</a>&nbsp;| <a href="Strategie_(Entwurfsmuster)" title="Strategie (Entwurfsmuster)">Strategie</a>&nbsp;| <a href="Vermittler_(Entwurfsmuster)" title="Vermittler (Entwurfsmuster)">Vermittler</a>&nbsp;| <a href="Zustand_(Entwurfsmuster)" title="Zustand (Entwurfsmuster)">Zustand</a>&nbsp;| <a href="Zust%C3%A4ndigkeitskette" title="Zuständigkeitskette">Zuständigkeitskette</a>&nbsp;| <a href="Interceptor_(Entwurfsmuster)" title="Interceptor (Entwurfsmuster)">Interceptor</a>&nbsp;| <a href="Nullobjekt_(Entwurfsmuster)" title="Nullobjekt (Entwurfsmuster)">Nullobjekt</a>&nbsp;| <a href="Protokollstapel" title="Protokollstapel">Protokollstapel</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Muster für <a href="Objektrelationale_Abbildung" title="Objektrelationale Abbildung">objekt-<br>relationale Abbildung</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Transferobjekt" title="Transferobjekt">Datentransferobjekt</a>&nbsp;| Table Data Gateway&nbsp;| Row Data Gateway&nbsp;| <a href="Active_Record" title="Active Record">Active Record</a>&nbsp;| <a href="Unit_of_Work" title="Unit of Work">Unit of Work</a>&nbsp;| Identity Map&nbsp;| <a href="Lazy_Loading" title="Lazy Loading">Lazy Loading</a>&nbsp;| Identity Field&nbsp;| Dependent Mapping&nbsp;| Embedded Value&nbsp;| Serialized LOB&nbsp;| Inheritance Mapper&nbsp;| Metadata Mapping&nbsp;| Query Object&nbsp;| <a href="Command-Query-Responsibility-Segregation" title="Command-Query-Responsibility-Segregation">Command-Query-Responsibility-Segregation</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Nachrichten%C3%BCbermittlungsmuster" title="Nachrichtenübermittlungsmuster">Nachrichten-<br>übermittlungsmuster</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0;">
<div class="Broken-NavContent">
<table class="wikitable erw-nav-zebra" style="width:100%;margin:0;text-align:left;border-collapse:collapse;">
<tbody><tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Integrationsarten</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>File Transfer&nbsp;| Shared Database&nbsp;| Remote Procedure Invocation&nbsp;| Messaging
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Nachrichtenaufbau</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Message_(Entwurfsmuster)" title="Message (Entwurfsmuster)">Message</a>&nbsp;| <a href="Command_Message" title="Command Message">Command Message</a>&nbsp;| <a href="Document_Message" title="Document Message">Document Message</a>&nbsp;| <a href="Event_Message" title="Event Message">Event Message</a>&nbsp;| Request-Reply&nbsp;| Return Address&nbsp;| Correlation Identifier&nbsp;| Message Sequence&nbsp;| Message Expiration&nbsp;| Format Indicator
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Teilnehmer_(Kommunikationssystem)" title="Teilnehmer (Kommunikationssystem)">Endpunkte</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Message Endpoint&nbsp;| Messaging Gateway&nbsp;| Messaging Mapper&nbsp;| Transactional Client&nbsp;| Polling Consumer&nbsp;| Event-driven Consumer&nbsp;| Competing Consumers&nbsp;| Message Dispatcher&nbsp;| Selective Consumer&nbsp;| Durable Subscriber&nbsp;| Idempotent Receiver&nbsp;| Service Activator
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Kanal_(Informationstheorie)" title="Kanal (Informationstheorie)">Kanäle</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Message Channel&nbsp;| Point-to-Point Channel&nbsp;| Publisher-Subscriber Channel&nbsp;| Datatype Channel&nbsp;| Invalid Message Channel&nbsp;| Dead Letter Channel&nbsp;| Guaranteed Delivery&nbsp;| Channel Adapter&nbsp;| Messaging Bridge&nbsp;| Message Bus
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b><a href="Nachrichtenvermittlung" class="mw-redirect" title="Nachrichtenvermittlung">Nachrichtenvermittlung</a></b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Pipes-and-Filters&nbsp;| Message Router&nbsp;| Content-based Router&nbsp;| Message Filter&nbsp;| Dynamic Router&nbsp;| Recipient List&nbsp;| Splitter&nbsp;| Aggregator&nbsp;| Resequencer&nbsp;| Composed Message Processor&nbsp;| Scatter-Gather&nbsp;| Routing Slip&nbsp;| Process Manager&nbsp;| Message Broker
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Nachrichtenumwandlung</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Message Translator&nbsp;| Envelope Wrapper&nbsp;| Content Enricher&nbsp;| Content Filter&nbsp;| Claim Check&nbsp;| Normalizer&nbsp;| Canonical Data Model
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 1px solid #FFF;padding: 0 1em;"><b>Systemmanagement</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Control Bus&nbsp;| Detour&nbsp;| Wire Tap&nbsp;| Message History&nbsp;| Message Store&nbsp;| Smart Proxy&nbsp;| Test Message&nbsp;| Channel Purger
</p>
</td></tr>

























</tbody></table></div>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 1px solid #FFF;padding: 0 1em;"><i><b>andere</b></i>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p>Application Controller&nbsp;| <a href="Business_Delegate" title="Business Delegate">Business Delegate</a>&nbsp;| <a href="Data_Access_Object" title="Data Access Object">Data Access Object</a>&nbsp;| <a href="Dependency_Injection" title="Dependency Injection">Dependency Injection</a>&nbsp;| <a href="Extension_Interface" title="Extension Interface">Extension Interface</a>&nbsp;| <a href="Fluent_Interface" title="Fluent Interface">Fluent Interface</a>&nbsp;| <a href="Inversion_of_Control" title="Inversion of Control">Inversion of Control</a> (IoC)&nbsp;| <a href="Lock" title="Lock">Lock</a>&nbsp;| <a href="Model_View_Controller" title="Model View Controller">Model View Controller</a> (MVC)&nbsp;| <a class="mw-selflink selflink">Model View Presenter</a> (MVP)&nbsp;| <a href="Model_View_Update" title="Model View Update">Model View Update</a> (MVU)&nbsp;| <a href="Model_View_ViewModel" title="Model View ViewModel">Model View ViewModel</a> (MVVM)&nbsp;| Page Controller&nbsp;| <a href="Registry_(Entwurfsmuster)" title="Registry (Entwurfsmuster)">Registry</a>&nbsp;| Remote Facade&nbsp;| <a href="Repository_(Entwurfsmuster)" title="Repository (Entwurfsmuster)">Repository</a>&nbsp;| <a href="Service_Locator" class="mw-redirect" title="Service Locator">Service Locator</a>&nbsp;| Session State&nbsp;| Table Module&nbsp;| Template View&nbsp;| <a href="Threadpool" title="Threadpool">Threadpool</a>&nbsp;| Transaction Script&nbsp;| Transform View&nbsp;| Two-Step View&nbsp;| <a href="Value_Object" title="Value Object">Value Object</a>
</p>
</td></tr>



















































</tbody></table><div class="erw-nav-leiste" style="margin:.1em 0;padding:.1em 1em;text-align:left;font-size:90%;">Siehe auch: &nbsp;<a href="Analysemuster" title="Analysemuster">Analysemuster</a>&nbsp;| <a href="Architekturmuster" title="Architekturmuster">Architekturmuster</a>&nbsp;| <a href="Integrationsmuster" title="Integrationsmuster">Integrationsmuster</a>&nbsp;| <a href="SOA-Muster" title="SOA-Muster">SOA-Muster</a> </div></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2022-10-16" href="https://de.wikipedia.org/wiki/?title=Model_View_Presenter&amp;oldid=227082618">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>